package database.pruebas;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedList;

import database.domain.Equipo;
import database.domain.Modificadores;
import database.gestor.GestorBD;
public class Test {
	
	public static void main (String [] args) throws ClassNotFoundException, SQLException{

		String tablaModificadores= //Modificadores que tienen los objetos y personajes. 
				"create table MODIFICADORES (" //TABLA 0: OK NO MOFIFICAR
				+ "id number(4) NOT NULL PRIMARY KEY,"
				+ "ataque number(4)  default 0," +
				"defensa number(4) default 0," +
				"magia number(4) default 0," + 
				"resistencia number(4) default 0," +
				"velocidad number(4) default 0," +
				"salto number(4) default 0," +
				"estamina number(4) default 0," +
				"vida number(4) default 0" +
				");";
		String tablaEquipo= //Info de los objetos equipables
				"create table EQUIPO (" //TABLA 1: OK NO MODIFICAR
				+ "id number(4) NOT NULL PRIMARY KEY," +
				"nombre varchar(20)," +
				"tipo VARCHAR(10)," + //A-armor, E-escudo, H-helm, W-weapon, M-magic , C- accesory
				"desc varchar(100)," +
				"ruta blob," +
				"coste number(4) default 0 check (coste>=0)," +
				"idModif number (4) NOT NULL references MODIFICADORES (id) ON DELETE CASCADE " +
				");";
		GestorBD gestor= GestorBD.getInstance();
		gestor.conectar("test");
		gestor.createTable(tablaModificadores);
		gestor.createTable(tablaEquipo);

		Modificadores mod1= new Modificadores(0, 0, 4, 4, 16, 0, 0, 0, 0);
		Equipo blackhat= new Equipo(0, "'H'", "Black hat", null, "blackhat.png", 4200, mod1);
		gestor.insertEquipo(blackhat);

		LinkedList<Equipo> lista =gestor.listEquipo("H");
		if(lista.size()>0) System.out.println(lista.get(0).toString());

		gestor.desconectar();

		Class.forName("org.sqlite.JDBC");
		Connection conn = DriverManager.getConnection("jdbc:sqlite:src/data/test.sqlite");
		Statement sta= conn.createStatement();
	//	sta.executeUpdate("insert into equipo values (0, 'H', 'Black hat', null, , 4200, 1)");
	//	PreparedStatement pre= 
		PreparedStatement pre= conn.prepareStatement("select * from EQUIPO where tipo = ? "); //TODO la base de datos no entiende esto
		pre.setString(1, "H");
		ResultSet re= pre.executeQuery();
		if(re.next())
			System.out.println("correcto");
		else System.out.println("incorrecto");
		pre.close();
		re.close();
		conn.close();
	}
}
